fun main(args: Array<String>) {
    // // let  一般是和?.配合使用 生成作用域
    val str = "hello"
    val result = str?.let {
        // 代码的执行条件 -> str 不为null or 不为空
        println(it)
        // 最后一行作为返回值
        it.uppercase()
    }
    println("result = $result")

    // with
    val car = Car("奔驰", 1000000)
    // // 调用汽车方法
    // car.start()
    // car.printInfo()
    // val discountedPrice = car.getDiscountedPrice(0.8)
    // println("折后价: $discountedPrice")

    // 更好的管理某一块代码 (易懂 可读性更高)
    with(car) {
        start()
        printInfo()
    }

}

class Car(var brand: String, var price: Int) {

    // 启动汽车
    fun start() {
        println("启动 $brand 汽车")
    }

    // 停止汽车
    fun stop() {
        println("停止 $brand 汽车")
    }

    // 打印汽车信息
    fun printInfo() {
        println("品牌: $brand, 价格: $price")
    }

    // 根据折扣计算折后价
    fun getDiscountedPrice(discount: Double): Int {
        return (price * discount).toInt()
    }
}